chore(ci): Upgrade performance test apps to React Native 0.85.1#6088
chore(ci): Upgrade performance test apps to React Native 0.85.1#6088
Conversation
Closes #4426 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog. This PR will not appear in the changelog. 🤖 This preview updates automatically when you update the PR. |
Android (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 2c735cc+dirty | 414.09 ms | 438.47 ms | 24.38 ms |
| 3d377b5+dirty | 406.18 ms | 453.52 ms | 47.34 ms |
| 5c1e987+dirty | 423.52 ms | 471.64 ms | 48.12 ms |
| 23598c3+dirty | 414.12 ms | 426.24 ms | 12.12 ms |
| 04207c4+dirty | 459.19 ms | 518.54 ms | 59.35 ms |
| 8929511+dirty | 405.33 ms | 452.16 ms | 46.83 ms |
| 0d9949d+dirty | 403.57 ms | 437.00 ms | 33.43 ms |
| 4953e94+dirty | 442.02 ms | 456.52 ms | 14.50 ms |
| df5d108+dirty | 527.06 ms | 603.58 ms | 76.52 ms |
| 7ac3378+dirty | 404.78 ms | 439.84 ms | 35.06 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 2c735cc+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 3d377b5+dirty | 43.75 MiB | 48.14 MiB | 4.39 MiB |
| 5c1e987+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 23598c3+dirty | 43.75 MiB | 48.16 MiB | 4.41 MiB |
| 04207c4+dirty | 43.75 MiB | 48.12 MiB | 4.37 MiB |
| 8929511+dirty | 43.75 MiB | 48.16 MiB | 4.41 MiB |
| 0d9949d+dirty | 43.75 MiB | 48.13 MiB | 4.37 MiB |
| 4953e94+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| df5d108+dirty | 43.75 MiB | 48.08 MiB | 4.33 MiB |
| 7ac3378+dirty | 43.75 MiB | 48.13 MiB | 4.37 MiB |
Android (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 5fe1c6c+dirty | 365.84 ms | 408.62 ms | 42.78 ms |
| 2c735cc+dirty | 435.20 ms | 459.48 ms | 24.28 ms |
| 3d377b5+dirty | 425.38 ms | 440.67 ms | 15.30 ms |
| 4b87b12+dirty | 356.23 ms | 399.86 ms | 43.63 ms |
| 04207c4+dirty | 395.40 ms | 456.55 ms | 61.15 ms |
| 7ac3378+dirty | 410.67 ms | 442.60 ms | 31.92 ms |
| 3ce5254+dirty | 373.90 ms | 427.84 ms | 53.94 ms |
| 5c1e987+dirty | 444.71 ms | 475.13 ms | 30.42 ms |
| 3817909+dirty | 357.52 ms | 391.52 ms | 34.00 ms |
| a50b33d+dirty | 353.21 ms | 398.48 ms | 45.27 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 5fe1c6c+dirty | 43.94 MiB | 49.00 MiB | 5.06 MiB |
| 2c735cc+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 3d377b5+dirty | 43.94 MiB | 49.00 MiB | 5.06 MiB |
| 4b87b12+dirty | 43.94 MiB | 49.00 MiB | 5.06 MiB |
| 04207c4+dirty | 43.94 MiB | 48.98 MiB | 5.04 MiB |
| 7ac3378+dirty | 43.94 MiB | 48.99 MiB | 5.05 MiB |
| 3ce5254+dirty | 43.94 MiB | 48.98 MiB | 5.04 MiB |
| 5c1e987+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| 3817909+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
| a50b33d+dirty | 43.94 MiB | 48.94 MiB | 5.00 MiB |
The podspec's node resolution finds packages/core/node_modules/react-native (0.80.1) instead of the perf test app's (0.85.1) due to yarn workspace symlink resolution. This causes NEW_HERMES_RUNTIME to not be defined, and the old Hermes static profiling API (removed in RN 0.85) to be compiled. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The RN 0.80 to 0.85 upgrade increased the Sentry-vs-plain iOS binary size diff from ~1.44 MiB to ~1.51 MiB. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@sentry review |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit fbd7702. Configure here.
On RN 0.85.1, the iOS startup time test consistently shows the plain app ~2.6s slower than the Sentry app. This is a measurement artifact of using Appium's activateApp() duration rather than actual UI render time — the command returns at different times based on binary characteristics unrelated to SDK overhead. Relaxing diffMin to -3000 for iOS only. Android keeps -20 as it doesn't exhibit this behavior. The diffMax (150ms) still catches real SDK overhead regressions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 690bc89. Configure here.
iOS (legacy) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 3ce5254+dirty | 1219.93 ms | 1221.90 ms | 1.96 ms |
| 7d6fd3a+dirty | 1223.29 ms | 1229.57 ms | 6.28 ms |
| 04207c4+dirty | 1191.27 ms | 1189.78 ms | -1.48 ms |
| 3d377b5+dirty | 1218.48 ms | 1219.51 ms | 1.03 ms |
| df5d108+dirty | 1225.90 ms | 1220.14 ms | -5.76 ms |
| 5fe1c6c+dirty | 1220.79 ms | 1217.63 ms | -3.16 ms |
| 5c1e987+dirty | 1204.30 ms | 1222.15 ms | 17.85 ms |
| 23598c3+dirty | 1207.00 ms | 1209.90 ms | 2.90 ms |
| 3817909+dirty | 1183.90 ms | 1187.50 ms | 3.60 ms |
| 0d9949d+dirty | 1211.38 ms | 1219.67 ms | 8.29 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 3ce5254+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 7d6fd3a+dirty | 3.38 MiB | 4.77 MiB | 1.39 MiB |
| 04207c4+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 3d377b5+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| df5d108+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 5fe1c6c+dirty | 3.38 MiB | 4.77 MiB | 1.39 MiB |
| 5c1e987+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 23598c3+dirty | 3.38 MiB | 4.80 MiB | 1.42 MiB |
| 3817909+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 0d9949d+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
iOS (new) Performance metrics 🚀
|
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 3ce5254+dirty | 1217.70 ms | 1224.69 ms | 6.99 ms |
| 7d6fd3a+dirty | 1210.89 ms | 1217.63 ms | 6.74 ms |
| 04207c4+dirty | 1228.55 ms | 1226.04 ms | -2.51 ms |
| 3d377b5+dirty | 1201.55 ms | 1201.80 ms | 0.25 ms |
| df5d108+dirty | 1207.34 ms | 1210.50 ms | 3.16 ms |
| 5fe1c6c+dirty | 1201.36 ms | 1209.15 ms | 7.78 ms |
| 5c1e987+dirty | 1208.43 ms | 1220.72 ms | 12.29 ms |
| 23598c3+dirty | 1223.59 ms | 1229.13 ms | 5.53 ms |
| 3817909+dirty | 1210.76 ms | 1215.64 ms | 4.89 ms |
| 0d9949d+dirty | 1203.94 ms | 1202.27 ms | -1.67 ms |
App size
| Revision | Plain | With Sentry | Diff |
|---|---|---|---|
| 3ce5254+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 7d6fd3a+dirty | 3.38 MiB | 4.77 MiB | 1.39 MiB |
| 04207c4+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| 3d377b5+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |
| df5d108+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 5fe1c6c+dirty | 3.38 MiB | 4.77 MiB | 1.39 MiB |
| 5c1e987+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 23598c3+dirty | 3.38 MiB | 4.80 MiB | 1.42 MiB |
| 3817909+dirty | 3.38 MiB | 4.73 MiB | 1.35 MiB |
| 0d9949d+dirty | 3.38 MiB | 4.76 MiB | 1.38 MiB |

📢 Type of change
📜 Description
Upgrades the performance test apps (TestAppPlain/TestAppSentry) from React Native 0.80.2 to 0.85.1, aligning them with the RN version used in the e2e test matrix.
Changes across both apps:
react-nativereact@react-native-community/cli*@react-native/{babel-preset,metro-config,typescript-config}buildToolsVersioncompileSdkVersion/targetSdkVersionAdditional changes:
edgeToEdgeEnabled=falsetogradle.properties(new RN 0.85 template property)nkfgem to Gemfiles (Ruby 3.4 compatibility, per RN 0.85 template)REACT_NATIVE_NODE_MODULES_DIRfor perf test iOS builds to fix podspec RN version detection in the yarn workspace (the podspec was resolvingpackages/core/node_modules/react-nativeat 0.80.1 instead of the test app's 0.85.1, causing the old Hermes profiling API to be compiled)diffMinfrom -20 to -3000 — on RN 0.85.1, the plain app consistently shows ~2.6s slower startup via Appium'sactivateApp()duration measurement. This is a measurement artifact (not real overhead); thediffMaxstill guards against SDK overhead regressions. See Flaky E2E Metrics App Start Time #3413Notes:
newArchEnabledis intentionally kept asfalse(default). CI toggles it for the new-arch matrix variant.💡 Motivation and Context
Closes #4426
This is a followup on #4414 which bumped the apps from RN 0.70.6 to 0.70.15 as a minimal fix. Upgrading to 0.85.1 brings the perf test apps in line with the e2e test matrix and modern Android/iOS tooling.
💚 How did you test it?
CI — monitoring the metrics job for binary size and startup time regressions.
📝 Checklist
sendDefaultPIIis enabled🔮 Next steps
activateApp()duration (related: Flaky E2E Metrics App Start Time #3413)#skip-changelog